package com.lvy.hczn.front.system.domain.business;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.lvy.hczn.front.common.core.domain.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 采购单详情
 *
 * @author yw
 * @date 2021-12-15 10:00:09
 */
@Data
@TableName("purchase_order_detail")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "采购单详情")
public class PurchaseOrderDetail extends BaseModel<PurchaseOrderDetail> {

    @ApiModelProperty(value = "采购单编号")
    private String purchaseOrderCode;

    @ApiModelProperty(value = "批次")
    private String batchCode;

    @ApiModelProperty(value = "数据来源")
    private String sourceId;

    @ApiModelProperty(value = "货箱编码")
    private String boxCode;

    @ApiModelProperty(value = "供应商编码")
    private String supplierCode;

    @ApiModelProperty(value = "生产商id")
    private String producerId;

    @ApiModelProperty(value = "商品编号")
    private String spuId;

    @ApiModelProperty(value = "商品sku")
    private String skuCode;

    @ApiModelProperty(value = "采购规格Hid")
    private String specCode;

    @ApiModelProperty(value = "单价")
    private BigDecimal price;

    @ApiModelProperty(value = "重量")
    private BigDecimal weight;

    @ApiModelProperty(value = "体积")
    private BigDecimal volume;

    @ApiModelProperty(value = "已采重量")
    private BigDecimal purchaseWeight;

    @ApiModelProperty(value = "应采购的数量(箱/袋/盒/斤等)")
    private Integer quantity;

    @ApiModelProperty(value = "数量单位(箱/袋/盒/斤等)")
    private String unit;

    @ApiModelProperty(value = "实际采购的数量")
    private Integer purchaseQuantity;

    @ApiModelProperty(value = "已入库数量(箱/袋/盒/斤等)")
    private Integer entryQuantity;

    @ApiModelProperty(value = "状态：0、待入库；1、已入库；2、货箱缺失")
    private String status;

    @ApiModelProperty("是否散装包装：0，否；1，是；非散装未标准包装，已打包好了，一包一包拿，无需称重")
    private boolean inBulk;

    @ApiModelProperty(value = "标品每箱包含的物件数量/份数")
    private Integer numberOfPerBox;

    @ApiModelProperty(value = "标品每份重量")
    private BigDecimal weightOfPerBox;

    @ApiModelProperty(value = "生产日期")
    private LocalDateTime produceDate;

    @ApiModelProperty(value = "保质期")
    private Integer warrantyDate;

    @ApiModelProperty(value = "单据类型:\"CSRK\": \"铺货入库\", \"CGRK\": \"预售补货\"，“XSBH”：\"销售补货\", \"DBRK\": \"调拨入库\",\"DBCK\": \"调拨出库\", \"HSCK\": \"报损出库\", \"QXRK\": \"取消入库\", \"TDRK\": \"退单入库\", \"FHCK\": \"销售发货出库\"")
    private String dataType;

    @ApiModelProperty(value = "生产加工方式")
    private String materialProcessId;

    @ApiModelProperty(value = "产品名称")
    @TableField(exist = false)
    private String spuName;

    @ApiModelProperty(value = "规格名")
    @TableField(exist = false)
    private String specName;

    @ApiModelProperty(value = "温区")
    @TableField(exist = false)
    private String temperatureZone;

    @ApiModelProperty(value = "温区编码")
    @TableField(exist = false)
    private String temperatureZoneCode;

    @ApiModelProperty(value = "客户端ID")
    @TableField(exist = false)
    private String clientId;

    @ApiModelProperty(value = "是否大件0:否,1:是")
    @TableField(exist = false)
    private Integer bigProduct;

    @ApiModelProperty(value = "预售类型（0:非预售，1：预售,）")
    @TableField(exist = false)
    private Integer outStock;
}
